/**
 * Copyright © 2015-2020 <a href="http://www.jeeplus.org/">JeePlus</a> All rights reserved.
 */
package com.jeeplus.modules.memberorder.entity;

import com.jeeplus.modules.express.entity.Express;
import com.jeeplus.modules.goods.entity.Goods;
import com.jeeplus.modules.member.entity.Member;
import javax.validation.constraints.NotNull;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;

import com.jeeplus.core.persistence.DataEntity;
import com.jeeplus.common.utils.excel.annotation.ExcelField;
import lombok.Data;

/**
 * 用户订单Entity
 * @author zhych
 * @version 2021-11-16
 */
@Data
public class MemberOrder extends DataEntity<MemberOrder> {
	
	private static final long serialVersionUID = 1L;
    @NotNull(message="用户不能为空")
	@ExcelField(title="用户", fieldType=Member.class, value="u.nickname", align=2, sort=1)
	private Member u;		// 用户
	@ExcelField(title="快递公司", fieldType=Express.class, value="express.title", align=2, sort=1)
	private Express express;		// 用户
	@ExcelField(title="商品名称", align=2, sort=2)
	private String title;		// 商品名称
	@ExcelField(title="商品缩略图", align=2, sort=3)
	private String icon;		// 商品缩略图
	@ExcelField(title="单价", align=2, sort=4)
	private String price;		// 单价
    @NotNull(message="数量不能为空")
	@ExcelField(title="数量", align=2, sort=5)
	private Integer quantity;		// 数量
	@ExcelField(title="总价", align=2, sort=6)
	private String money;		// 总价
	@ExcelField(title="用户地址", align=2, sort=7)
	private String address;		// 用户地址
	@ExcelField(title="快递单号", align=2, sort=8)
	private String expNo;		// 快递单号
	@ExcelField(title="订单状态", dictType="", align=2, sort=9)
	private String orderState;		// 订单状态
	@ExcelField(title="支付状态", dictType="", align=2, sort=10)
	private String payState;		// 支付状态
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	@ExcelField(title="发货时间", align=2, sort=11)
	private Date deliveryTime;		// 发货时间
	private Date beginDeliveryTime;		// 开始 发货时间
	private Date endDeliveryTime;		// 结束 发货时间
	private Date beginCreateDate;		// 开始 创建时间
	private Date endCreateDate;		// 结束 创建时间

	private String remark; // 订单备注

	@ExcelField(title="商品", fieldType=Member.class, value="goods.title", align=2, sort=1)
	private Goods goods;		// 商品

	@ExcelField(title="发货时间", align=2, sort=11)
	private Date takeDate;		// 收货时间

	private String referrerMobile; // 推荐人手机号

	private String tcPoint; // 天畅积分

	private String fgPoint; // 复购积分

	private int boxNum; // 盒数
	
	public MemberOrder() {
		super();
	}
	
	public MemberOrder(String id){
		super(id);
	}
}